package com.sxj.corejava.code08_常用类.String;

import java.util.Arrays;

/**
 * @author 石小俊
 * @date 2024年04月11日 19:25
 */
public class Test08_正则表达式 {

    public static void main(String[] args) {
        System.out.println("匹配指定的字符串中是否只有一个字符a:" + "a".matches("a"));
        System.out.println("匹配指定的字符串中是否包含三个a:" + "aaa".matches("a{3}"));
        System.out.println("匹配指定的字符串中是否包含1-3个a:" + "ab".matches("a{1,3}"));
        System.out.println("匹配指定的字符串中是否至少3个a:" + "a".matches("a{3,}"));
        System.out.println("匹配指定的字符串中是否至少出现一个a:" + "aaaaaaaaaaa".matches("a+"));
        System.out.println("匹配指定的字符串中是否出现0-1个a:" + "aaaaaaaaaaaa".matches("a?"));
        System.out.println("匹配指定的字符串中是否出现0-多个a:" + "aaaaaaaaa".matches("a*"));

        System.out.println("abcd".matches("[abcd]+"));
        System.out.println("abcd".matches("[a-d]+"));
        System.out.println("abcd,".matches("[a,b,c,d]+")); // 匹配abcd与逗号,
        System.out.println("abcd-".matches("[a-d]+"));  // 匹配a-d范围中的所有字母,不包含符号-
        System.out.println("13abc".matches("[a-zA-Z0-9]+"));
        System.out.println("\t341@!@3!3aad.asdqwe\n".matches(".+")); // 匹配除了换行符\n以外的一切字符

        System.out.println("匹配数字:" + "123".matches("\\d+"));
        System.out.println("匹配非数字:" + "dasda@!$#!".matches("\\D+"));
        System.out.println("匹配数字、英文字母、下划线:" + "123abc_".matches("\\w+"));
        System.out.println("匹配非数字、英文字母、下划线:" + "@#!@%%$@\n ".matches("\\W+"));
        System.out.println("匹配空格:" + "   ".matches("\\s+"));
        System.out.println("匹配非空格:" + "dasae1$@$!$".matches("\\S+"));

        // 使用或者的时候不能有空格
        System.out.println("匹配3或5位数字" + "12345".matches("\\d{3}|\\d{5}"));
        System.out.println("匹配3或5位数字" + "1234".matches("\\d{3}(\\d{2})?"));

        System.out.println("************************替换所有************************");
        // 将字符串的空格替换成-
        System.out.println("Hello  World I am admin".replaceAll("\\s+", "-"));
        // 将连续的多个数字替换成一个空格
        System.out.println("Hello1234World5I213am12313admin".replaceAll("\\d+", " "));
        // 将数字替换成空格
        System.out.println("Hello1234World5I213am12313admin".replaceAll("\\d", " "));

        System.out.println("************************替换第一个************************");
        System.out.println("Hello  World I am admin".replaceFirst("\\s+", "-"));

        System.out.println("************************字符串分割************************");
        String s = "Hello1213World,I@am-admin";
        String[] arr = s.split("[0-9,@-]+");
        System.out.println(Arrays.toString(arr));

    }

}
